package com.internetCafes.spms.web.tenant.service;

import com.internetCafes.spms.core.model.pageModel.DataGrid;
import com.internetCafes.spms.web.tenant.model.LandingTimeInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 登陆时长记录表
 *
 * @author Sunny
 * @email rekeeper2011@hotmail.com
 * @date 2019-12-11 17:28:39
 */
public interface LandingTimeInfoService {

    /**
     * 查询
     */
    List<LandingTimeInfo> query(Map<String, Object> params);

    /**
     * ID查询
     */
    LandingTimeInfo findById(Long id);

    /**
     * ID批量查询
     */
    List<LandingTimeInfo> queryByIds(List<Long> ids);

    /**
     * 参数分页查询
     */
    List<LandingTimeInfo> page(Map<String, Object> params, int page, int rows);

    /**
     * 参数查询总数
     */
    long count(Map<String, Object> params);

    /**
     * First查询
     */
    LandingTimeInfo findFirst(Map<String, Object> params);

    /**
     * 保存
     */
    int save(LandingTimeInfo landingTimeInfo);

    /**
     * 批量保存
     */
    int saveBatch(List<LandingTimeInfo> landingTimeInfoList);

    /**
     * 选择保存
     */
    int saveSelective(LandingTimeInfo landingTimeInfo);

    /**
     * 修改
     */
    int update(LandingTimeInfo landingTimeInfo);

    /**
     * 选择修改
     */
    int updateSelective(LandingTimeInfo landingTimeInfo);

    /**
     * 删除
     */
    int delete(Long id);

    /**
     * 批量删除
     */
    int deleteBatch(List<Long> ids);

    /**
     * 批量删除
     */
    void deleteBatch(Long[] ids);


    /**
     * DataGrid
     */
    DataGrid dataGrid(Map<String, Object> params, int pageNo, int pageSize);

    /**
     * 查询根据用户id查询记录
     * @param userId
     * @return
     */
    LandingTimeInfo findLastest(Long userId);

    /**
     * 根据用户id判断是否存在对应记录，如果存在则更新，不存在则创建一条新纪录
     * @param userId 用户id
     * @param nowDate 当前日期
     */
    void saveOrUpdateLoginLog(Long userId, Date nowDate);
}
